/*
 *
 * Copyright 2021-2025 Software Radio Systems Limited
 *
 * This file is part of srsRAN.
 *
 * srsRAN is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, either version 3 of
 * the License, or (at your option) any later version.
 *
 * srsRAN is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * A copy of the GNU Affero General Public License can be found in
 * the LICENSE file in the top-level directory of this distribution
 * and at http://www.gnu.org/licenses/.
 *
 */

/*******************************************************************************
 *
 *                     3GPP TS ASN1 NGAP v17.4.0 (2023-03)
 *
 ******************************************************************************/

#pragma once

#include "srsran/asn1/asn1_ap_utils.h"

namespace asn1 {
namespace ngap {

/*******************************************************************************
 *                             Constant Definitions
 ******************************************************************************/

#define ASN1_NGAP_ID_AMF_CFG_UPD 0
#define ASN1_NGAP_ID_AMF_STATUS_IND 1
#define ASN1_NGAP_ID_CELL_TRAFFIC_TRACE 2
#define ASN1_NGAP_ID_DEACTIV_TRACE 3
#define ASN1_NGAP_ID_DL_NAS_TRANSPORT 4
#define ASN1_NGAP_ID_DL_NON_UE_ASSOCIATED_NRPPA_TRANSPORT 5
#define ASN1_NGAP_ID_DL_RAN_CFG_TRANSFER 6
#define ASN1_NGAP_ID_DL_RAN_STATUS_TRANSFER 7
#define ASN1_NGAP_ID_DL_UE_ASSOCIATED_NRPPA_TRANSPORT 8
#define ASN1_NGAP_ID_ERROR_IND 9
#define ASN1_NGAP_ID_HO_CANCEL 10
#define ASN1_NGAP_ID_HO_NOTIF 11
#define ASN1_NGAP_ID_HO_PREP 12
#define ASN1_NGAP_ID_HO_RES_ALLOC 13
#define ASN1_NGAP_ID_INIT_CONTEXT_SETUP 14
#define ASN1_NGAP_ID_INIT_UE_MSG 15
#define ASN1_NGAP_ID_LOCATION_REPORT_CTRL 16
#define ASN1_NGAP_ID_LOCATION_REPORT_FAIL_IND 17
#define ASN1_NGAP_ID_LOCATION_REPORT 18
#define ASN1_NGAP_ID_NAS_NON_DELIVERY_IND 19
#define ASN1_NGAP_ID_NG_RESET 20
#define ASN1_NGAP_ID_NG_SETUP 21
#define ASN1_NGAP_ID_OVERLOAD_START 22
#define ASN1_NGAP_ID_OVERLOAD_STOP 23
#define ASN1_NGAP_ID_PAGING 24
#define ASN1_NGAP_ID_PATH_SWITCH_REQUEST 25
#define ASN1_NGAP_ID_PDU_SESSION_RES_MODIFY 26
#define ASN1_NGAP_ID_PDU_SESSION_RES_MODIFY_IND 27
#define ASN1_NGAP_ID_PDU_SESSION_RES_RELEASE 28
#define ASN1_NGAP_ID_PDU_SESSION_RES_SETUP 29
#define ASN1_NGAP_ID_PDU_SESSION_RES_NOTIFY 30
#define ASN1_NGAP_ID_PRIVATE_MSG 31
#define ASN1_NGAP_ID_PWS_CANCEL 32
#define ASN1_NGAP_ID_PWS_FAIL_IND 33
#define ASN1_NGAP_ID_PWS_RESTART_IND 34
#define ASN1_NGAP_ID_RAN_CFG_UPD 35
#define ASN1_NGAP_ID_REROUTE_NAS_REQUEST 36
#define ASN1_NGAP_ID_RRC_INACTIVE_TRANSITION_REPORT 37
#define ASN1_NGAP_ID_TRACE_FAIL_IND 38
#define ASN1_NGAP_ID_TRACE_START 39
#define ASN1_NGAP_ID_UE_CONTEXT_MOD 40
#define ASN1_NGAP_ID_UE_CONTEXT_RELEASE 41
#define ASN1_NGAP_ID_UE_CONTEXT_RELEASE_REQUEST 42
#define ASN1_NGAP_ID_UE_RADIO_CAP_CHECK 43
#define ASN1_NGAP_ID_UE_RADIO_CAP_INFO_IND 44
#define ASN1_NGAP_ID_UE_TNLA_BINDING_RELEASE 45
#define ASN1_NGAP_ID_UL_NAS_TRANSPORT 46
#define ASN1_NGAP_ID_UL_NON_UE_ASSOCIATED_NRPPA_TRANSPORT 47
#define ASN1_NGAP_ID_UL_RAN_CFG_TRANSFER 48
#define ASN1_NGAP_ID_UL_RAN_STATUS_TRANSFER 49
#define ASN1_NGAP_ID_UL_UE_ASSOCIATED_NRPPA_TRANSPORT 50
#define ASN1_NGAP_ID_WRITE_REPLACE_WARNING 51
#define ASN1_NGAP_ID_SECONDARY_RAT_DATA_USAGE_REPORT 52
#define ASN1_NGAP_ID_UL_RIM_INFO_TRANSFER 53
#define ASN1_NGAP_ID_DL_RIM_INFO_TRANSFER 54
#define ASN1_NGAP_ID_RETRIEVE_UE_INFO 55
#define ASN1_NGAP_ID_UE_INFO_TRANSFER 56
#define ASN1_NGAP_ID_RAN_CP_RELOCATION_IND 57
#define ASN1_NGAP_ID_UE_CONTEXT_RESUME 58
#define ASN1_NGAP_ID_UE_CONTEXT_SUSPEND 59
#define ASN1_NGAP_ID_UE_RADIO_CAP_ID_MAP 60
#define ASN1_NGAP_ID_HO_SUCCESS 61
#define ASN1_NGAP_ID_UL_RAN_EARLY_STATUS_TRANSFER 62
#define ASN1_NGAP_ID_DL_RAN_EARLY_STATUS_TRANSFER 63
#define ASN1_NGAP_ID_AMF_CP_RELOCATION_IND 64
#define ASN1_NGAP_ID_CONN_ESTABLISHMENT_IND 65
#define ASN1_NGAP_ID_BROADCAST_SESSION_MOD 66
#define ASN1_NGAP_ID_BROADCAST_SESSION_RELEASE 67
#define ASN1_NGAP_ID_BROADCAST_SESSION_SETUP 68
#define ASN1_NGAP_ID_DISTRIBUTION_SETUP 69
#define ASN1_NGAP_ID_DISTRIBUTION_RELEASE 70
#define ASN1_NGAP_ID_MULTICAST_SESSION_ACTIVATION 71
#define ASN1_NGAP_ID_MULTICAST_SESSION_DEACTIVATION 72
#define ASN1_NGAP_ID_MULTICAST_SESSION_UPD 73
#define ASN1_NGAP_ID_MULTICAST_GROUP_PAGING 74
#define ASN1_NGAP_ID_BROADCAST_SESSION_RELEASE_REQUIRED 75
#define ASN1_NGAP_MAX_PRIVATE_IES 65535
#define ASN1_NGAP_MAX_PROTOCOL_EXTS 65535
#define ASN1_NGAP_MAX_PROTOCOL_IES 65535
#define ASN1_NGAP_MAXNOOF_ALLOWED_AREAS 16
#define ASN1_NGAP_MAXNOOF_ALLOWED_CA_GSPER_PLMN 256
#define ASN1_NGAP_MAXNOOF_ALLOWED_S_NSSAIS 8
#define ASN1_NGAP_MAXNOOF_BLUETOOTH_NAME 4
#define ASN1_NGAP_MAXNOOF_BPLMNS 12
#define ASN1_NGAP_MAXNOOF_CAGS_PER_CELL 64
#define ASN1_NGAP_MAXNOOF_CELL_ID_FOR_MDT 32
#define ASN1_NGAP_MAXNOOF_CELL_ID_FOR_WARNING 65535
#define ASN1_NGAP_MAXNOOF_CELLIN_AO_I 256
#define ASN1_NGAP_MAXNOOF_CELLIN_EAI 65535
#define ASN1_NGAP_MAXNOOF_CELLIN_TAI 65535
#define ASN1_NGAP_MAXNOOF_CELLSFOR_MBS 8192
#define ASN1_NGAP_MAXNOOF_CELLSIN_GNB 16384
#define ASN1_NGAP_MAXNOOF_CELLSINNG_ENB 256
#define ASN1_NGAP_MAXNOOF_CELLSIN_NGRAN_NODE 16384
#define ASN1_NGAP_MAXNOOF_CELLSIN_UE_HISTORY_INFO 16
#define ASN1_NGAP_MAXNOOF_CELLS_UE_MOVING_TRAJECTORY 16
#define ASN1_NGAP_MAXNOOF_DRBS 32
#define ASN1_NGAP_MAXNOOF_EMERGENCY_AREA_ID 65535
#define ASN1_NGAP_MAXNOOF_EAI_FOR_RESTART 256
#define ASN1_NGAP_MAXNOOF_EPLMNS 15
#define ASN1_NGAP_MAXNOOF_EPLMNS_PLUS_ONE 16
#define ASN1_NGAP_MAXNOOF_ERABS 256
#define ASN1_NGAP_MAXNOOF_ERRORS 256
#define ASN1_NGAP_MAXNOOF_EXT_SLICE_ITEMS 65535
#define ASN1_NGAP_MAXNOOF_FORB_TACS 4096
#define ASN1_NGAP_MAXNOOF_FREQFOR_MDT 8
#define ASN1_NGAP_MAXNOOF_MBS_AREA_SESSION_IDS 256
#define ASN1_NGAP_MAXNOOF_MBSFS_AS 64
#define ASN1_NGAP_MAXNOOF_MBS_QOS_FLOWS 64
#define ASN1_NGAP_MAXNOOF_MBS_SESSIONS 32
#define ASN1_NGAP_MAXNOOF_MBS_SESSIONSOF_UE 256
#define ASN1_NGAP_MAXNOOF_MBS_SERVICE_AREA_INFO 256
#define ASN1_NGAP_MAXNOOF_MDT_PLMNS 16
#define ASN1_NGAP_MAXNOOF_M_RBS 32
#define ASN1_NGAP_MAXNOOF_MULTI_CONNECT 4
#define ASN1_NGAP_MAXNOOF_MULTI_CONNECT_MINUS_ONE 3
#define ASN1_NGAP_MAXNOOF_NEIGH_PCI_FOR_MDT 32
#define ASN1_NGAP_MAXNOOF_NGAP_IE_SUPPORT_INFO 32
#define ASN1_NGAP_MAXNOOF_NG_CONNS_TO_RESET 65536
#define ASN1_NGAP_MAXNOOF_NR_CELL_BANDS 32
#define ASN1_NGAP_MAXNOOF_NSA_GS 256
#define ASN1_NGAP_MAXNOOF_PAGING_AREAS 64
#define ASN1_NGAP_MAXNOOF_PC5_QOS_FLOWS 2048
#define ASN1_NGAP_MAXNOOF_PDU_SESSIONS 256
#define ASN1_NGAP_MAXNOOF_PLMNS 12
#define ASN1_NGAP_MAXNOOF_P_SCELLS_PER_PRIMARY_CELLIN_UE_HISTORY_INFO 8
#define ASN1_NGAP_MAXNOOF_QOS_FLOWS 64
#define ASN1_NGAP_MAXNOOF_QOS_PARA_SETS 8
#define ASN1_NGAP_MAXNOOF_RAN_NODEIN_AO_I 64
#define ASN1_NGAP_MAXNOOF_RECOMMENDED_CELLS 16
#define ASN1_NGAP_MAXNOOF_RECOMMENDED_RAN_NODES 16
#define ASN1_NGAP_MAXNOOF_AO_I 64
#define ASN1_NGAP_MAXNOOF_REPORTED_CELLS 256
#define ASN1_NGAP_MAXNOOF_SENSOR_NAME 3
#define ASN1_NGAP_MAXNOOF_SERVED_GUAMIS 256
#define ASN1_NGAP_MAXNOOF_SLICE_ITEMS 1024
#define ASN1_NGAP_MAXNOOF_SUCCESSFUL_HO_REPORTS 64
#define ASN1_NGAP_MAXNOOF_TACS 256
#define ASN1_NGAP_MAXNOOF_TAC_SIN_NTN 12
#define ASN1_NGAP_MAXNOOF_TA_FOR_MDT 8
#define ASN1_NGAP_MAXNOOF_TAI_FOR_INACTIVE 16
#define ASN1_NGAP_MAXNOOF_TAI_FOR_MBS 1024
#define ASN1_NGAP_MAXNOOF_TAI_FOR_PAGING 16
#define ASN1_NGAP_MAXNOOF_TAI_FOR_RESTART 2048
#define ASN1_NGAP_MAXNOOF_TAI_FOR_WARNING 65535
#define ASN1_NGAP_MAXNOOF_TAI_IN_AO_I 16
#define ASN1_NGAP_MAXNOOF_TIME_PERIODS 2
#define ASN1_NGAP_MAXNOOF_TNL_ASSOCS 32
#define ASN1_NGAP_MAXNOOF_UE_SFOR_PAGING 4096
#define ASN1_NGAP_MAXNOOF_WLAN_NAME 4
#define ASN1_NGAP_MAXNOOF_XN_EXT_TLAS 16
#define ASN1_NGAP_MAXNOOF_XN_GTP_TLAS 16
#define ASN1_NGAP_MAXNOOF_XN_TLAS 2
#define ASN1_NGAP_MAXNOOF_CANDIDATE_CELLS 32
#define ASN1_NGAP_MAXNOOF_TARGET_S_NSSAIS 8
#define ASN1_NGAP_MAX_NR_ARFCN 3279165
#define ASN1_NGAP_MAXNOOF_CELL_ID_FOR_QMC 32
#define ASN1_NGAP_MAXNOOF_PLMN_FOR_QMC 16
#define ASN1_NGAP_MAXNOOF_UE_APP_LAYER_MEAS 16
#define ASN1_NGAP_MAXNOOF_SNSSAI_FOR_QMC 16
#define ASN1_NGAP_MAXNOOF_TA_FOR_QMC 8
#define ASN1_NGAP_MAXNOOF_THRESS_FOR_EXCESS_PACKET_DELAY 255
#define ASN1_NGAP_ID_ALLOWED_NSSAI 0
#define ASN1_NGAP_ID_AMF_NAME 1
#define ASN1_NGAP_ID_AMF_OVERLOAD_RESP 2
#define ASN1_NGAP_ID_AMF_SET_ID 3
#define ASN1_NGAP_ID_AMF_TNL_ASSOC_FAILED_TO_SETUP_LIST 4
#define ASN1_NGAP_ID_AMF_TNL_ASSOC_SETUP_LIST 5
#define ASN1_NGAP_ID_AMF_TNL_ASSOC_TO_ADD_LIST 6
#define ASN1_NGAP_ID_AMF_TNL_ASSOC_TO_REM_LIST 7
#define ASN1_NGAP_ID_AMF_TNL_ASSOC_TO_UPD_LIST 8
#define ASN1_NGAP_ID_AMF_TRAFFIC_LOAD_REDUCTION_IND 9
#define ASN1_NGAP_ID_AMF_UE_NGAP_ID 10
#define ASN1_NGAP_ID_ASSIST_DATA_FOR_PAGING 11
#define ASN1_NGAP_ID_BROADCAST_CANCELLED_AREA_LIST 12
#define ASN1_NGAP_ID_BROADCAST_COMPLETED_AREA_LIST 13
#define ASN1_NGAP_ID_CANCEL_ALL_WARNING_MSGS 14
#define ASN1_NGAP_ID_CAUSE 15
#define ASN1_NGAP_ID_CELL_ID_LIST_FOR_RESTART 16
#define ASN1_NGAP_ID_CONCURRENT_WARNING_MSG_IND 17
#define ASN1_NGAP_ID_CORE_NETWORK_ASSIST_INFO_FOR_INACTIVE 18
#define ASN1_NGAP_ID_CRIT_DIAGNOSTICS 19
#define ASN1_NGAP_ID_DATA_CODING_SCHEME 20
#define ASN1_NGAP_ID_DEFAULT_PAGING_DRX 21
#define ASN1_NGAP_ID_DIRECT_FORWARDING_PATH_AVAILABILITY 22
#define ASN1_NGAP_ID_EMERGENCY_AREA_ID_LIST_FOR_RESTART 23
#define ASN1_NGAP_ID_EMERGENCY_FALLBACK_IND 24
#define ASN1_NGAP_ID_EUTRA_CGI 25
#define ASN1_NGAP_ID_FIVE_G_S_TMSI 26
#define ASN1_NGAP_ID_GLOBAL_RAN_NODE_ID 27
#define ASN1_NGAP_ID_GUAMI 28
#define ASN1_NGAP_ID_HANDOV_TYPE 29
#define ASN1_NGAP_ID_IMS_VOICE_SUPPORT_IND 30
#define ASN1_NGAP_ID_IDX_TO_RFSP 31
#define ASN1_NGAP_ID_INFO_ON_RECOMMENDED_CELLS_AND_RAN_NODES_FOR_PAGING 32
#define ASN1_NGAP_ID_LOCATION_REPORT_REQUEST_TYPE 33
#define ASN1_NGAP_ID_MASKED_IMEISV 34
#define ASN1_NGAP_ID_MSG_ID 35
#define ASN1_NGAP_ID_MOB_RESTRICT_LIST 36
#define ASN1_NGAP_ID_NASC 37
#define ASN1_NGAP_ID_NAS_PDU 38
#define ASN1_NGAP_ID_NAS_SECURITY_PARAMS_FROM_NGRAN 39
#define ASN1_NGAP_ID_NEW_AMF_UE_NGAP_ID 40
#define ASN1_NGAP_ID_NEW_SECURITY_CONTEXT_IND 41
#define ASN1_NGAP_ID_NGAP_MSG 42
#define ASN1_NGAP_ID_NGRAN_CGI 43
#define ASN1_NGAP_ID_NGRAN_TRACE_ID 44
#define ASN1_NGAP_ID_NR_CGI 45
#define ASN1_NGAP_ID_NRPPA_PDU 46
#define ASN1_NGAP_ID_NOF_BROADCASTS_REQUESTED 47
#define ASN1_NGAP_ID_OLD_AMF 48
#define ASN1_NGAP_ID_OVERLOAD_START_NSSAI_LIST 49
#define ASN1_NGAP_ID_PAGING_DRX 50
#define ASN1_NGAP_ID_PAGING_ORIGIN 51
#define ASN1_NGAP_ID_PAGING_PRIO 52
#define ASN1_NGAP_ID_PDU_SESSION_RES_ADMITTED_LIST 53
#define ASN1_NGAP_ID_PDU_SESSION_RES_FAILED_TO_MODIFY_LIST_MOD_RES 54
#define ASN1_NGAP_ID_PDU_SESSION_RES_FAILED_TO_SETUP_LIST_CXT_RES 55
#define ASN1_NGAP_ID_PDU_SESSION_RES_FAILED_TO_SETUP_LIST_HO_ACK 56
#define ASN1_NGAP_ID_PDU_SESSION_RES_FAILED_TO_SETUP_LIST_PS_REQ 57
#define ASN1_NGAP_ID_PDU_SESSION_RES_FAILED_TO_SETUP_LIST_SU_RES 58
#define ASN1_NGAP_ID_PDU_SESSION_RES_HO_LIST 59
#define ASN1_NGAP_ID_PDU_SESSION_RES_LIST_CXT_REL_CPL 60
#define ASN1_NGAP_ID_PDU_SESSION_RES_LIST_HO_RQD 61
#define ASN1_NGAP_ID_PDU_SESSION_RES_MODIFY_LIST_MOD_CFM 62
#define ASN1_NGAP_ID_PDU_SESSION_RES_MODIFY_LIST_MOD_IND 63
#define ASN1_NGAP_ID_PDU_SESSION_RES_MODIFY_LIST_MOD_REQ 64
#define ASN1_NGAP_ID_PDU_SESSION_RES_MODIFY_LIST_MOD_RES 65
#define ASN1_NGAP_ID_PDU_SESSION_RES_NOTIFY_LIST 66
#define ASN1_NGAP_ID_PDU_SESSION_RES_RELEASED_LIST_NOT 67
#define ASN1_NGAP_ID_PDU_SESSION_RES_RELEASED_LIST_PS_ACK 68
#define ASN1_NGAP_ID_PDU_SESSION_RES_RELEASED_LIST_PS_FAIL 69
#define ASN1_NGAP_ID_PDU_SESSION_RES_RELEASED_LIST_REL_RES 70
#define ASN1_NGAP_ID_PDU_SESSION_RES_SETUP_LIST_CXT_REQ 71
#define ASN1_NGAP_ID_PDU_SESSION_RES_SETUP_LIST_CXT_RES 72
#define ASN1_NGAP_ID_PDU_SESSION_RES_SETUP_LIST_HO_REQ 73
#define ASN1_NGAP_ID_PDU_SESSION_RES_SETUP_LIST_SU_REQ 74
#define ASN1_NGAP_ID_PDU_SESSION_RES_SETUP_LIST_SU_RES 75
#define ASN1_NGAP_ID_PDU_SESSION_RES_TO_BE_SWITCHED_DL_LIST 76
#define ASN1_NGAP_ID_PDU_SESSION_RES_SWITCHED_LIST 77
#define ASN1_NGAP_ID_PDU_SESSION_RES_TO_RELEASE_LIST_HO_CMD 78
#define ASN1_NGAP_ID_PDU_SESSION_RES_TO_RELEASE_LIST_REL_CMD 79
#define ASN1_NGAP_ID_PLMN_SUPPORT_LIST 80
#define ASN1_NGAP_ID_PWS_FAILED_CELL_ID_LIST 81
#define ASN1_NGAP_ID_RAN_NODE_NAME 82
#define ASN1_NGAP_ID_RAN_PAGING_PRIO 83
#define ASN1_NGAP_ID_RAN_STATUS_TRANSFER_TRANSPARENT_CONTAINER 84
#define ASN1_NGAP_ID_RAN_UE_NGAP_ID 85
#define ASN1_NGAP_ID_RELATIVE_AMF_CAPACITY 86
#define ASN1_NGAP_ID_REPEAT_PERIOD 87
#define ASN1_NGAP_ID_RESET_TYPE 88
#define ASN1_NGAP_ID_ROUTING_ID 89
#define ASN1_NGAP_ID_RRC_ESTABLISHMENT_CAUSE 90
#define ASN1_NGAP_ID_RRC_INACTIVE_TRANSITION_REPORT_REQUEST 91
#define ASN1_NGAP_ID_RRC_STATE 92
#define ASN1_NGAP_ID_SECURITY_CONTEXT 93
#define ASN1_NGAP_ID_SECURITY_KEY 94
#define ASN1_NGAP_ID_SERIAL_NUM 95
#define ASN1_NGAP_ID_SERVED_GUAMI_LIST 96
#define ASN1_NGAP_ID_SLICE_SUPPORT_LIST 97
#define ASN1_NGAP_ID_SON_CFG_TRANSFER_DL 98
#define ASN1_NGAP_ID_SON_CFG_TRANSFER_UL 99
#define ASN1_NGAP_ID_SOURCE_AMF_UE_NGAP_ID 100
#define ASN1_NGAP_ID_SOURCE_TO_TARGET_TRANSPARENT_CONTAINER 101
#define ASN1_NGAP_ID_SUPPORTED_TA_LIST 102
#define ASN1_NGAP_ID_TAI_LIST_FOR_PAGING 103
#define ASN1_NGAP_ID_TAI_LIST_FOR_RESTART 104
#define ASN1_NGAP_ID_TARGET_ID 105
#define ASN1_NGAP_ID_TARGET_TO_SOURCE_TRANSPARENT_CONTAINER 106
#define ASN1_NGAP_ID_TIME_TO_WAIT 107
#define ASN1_NGAP_ID_TRACE_ACTIVATION 108
#define ASN1_NGAP_ID_TRACE_COLLECTION_ENTITY_IP_ADDRESS 109
#define ASN1_NGAP_ID_UE_AGGR_MAX_BIT_RATE 110
#define ASN1_NGAP_ID_UE_ASSOCIATED_LC_NG_CONN_LIST 111
#define ASN1_NGAP_ID_UE_CONTEXT_REQUEST 112
#define ASN1_NGAP_ID_UE_NGAP_IDS 114
#define ASN1_NGAP_ID_UE_PAGING_ID 115
#define ASN1_NGAP_ID_UE_PRESENCE_IN_AREA_OF_INTEREST_LIST 116
#define ASN1_NGAP_ID_UE_RADIO_CAP 117
#define ASN1_NGAP_ID_UE_RADIO_CAP_FOR_PAGING 118
#define ASN1_NGAP_ID_UE_SECURITY_CAP 119
#define ASN1_NGAP_ID_UNAVAILABLE_GUAMI_LIST 120
#define ASN1_NGAP_ID_USER_LOCATION_INFO 121
#define ASN1_NGAP_ID_WARNING_AREA_LIST 122
#define ASN1_NGAP_ID_WARNING_MSG_CONTENTS 123
#define ASN1_NGAP_ID_WARNING_SECURITY_INFO 124
#define ASN1_NGAP_ID_WARNING_TYPE 125
#define ASN1_NGAP_ID_ADD_UL_NGU_UP_TNL_INFO 126
#define ASN1_NGAP_ID_DATA_FORWARDING_NOT_POSSIBLE 127
#define ASN1_NGAP_ID_DL_NGU_UP_TNL_INFO 128
#define ASN1_NGAP_ID_NETWORK_INSTANCE 129
#define ASN1_NGAP_ID_PDU_SESSION_AGGR_MAX_BIT_RATE 130
#define ASN1_NGAP_ID_PDU_SESSION_RES_FAILED_TO_MODIFY_LIST_MOD_CFM 131
#define ASN1_NGAP_ID_PDU_SESSION_RES_FAILED_TO_SETUP_LIST_CXT_FAIL 132
#define ASN1_NGAP_ID_PDU_SESSION_RES_LIST_CXT_REL_REQ 133
#define ASN1_NGAP_ID_PDU_SESSION_TYPE 134
#define ASN1_NGAP_ID_QOS_FLOW_ADD_OR_MODIFY_REQUEST_LIST 135
#define ASN1_NGAP_ID_QOS_FLOW_SETUP_REQUEST_LIST 136
#define ASN1_NGAP_ID_QOS_FLOW_TO_RELEASE_LIST 137
#define ASN1_NGAP_ID_SECURITY_IND 138
#define ASN1_NGAP_ID_UL_NGU_UP_TNL_INFO 139
#define ASN1_NGAP_ID_UL_NGU_UP_TNL_MODIFY_LIST 140
#define ASN1_NGAP_ID_WARNING_AREA_COORDINATES 141
#define ASN1_NGAP_ID_PDU_SESSION_RES_SECONDARY_RAT_USAGE_LIST 142
#define ASN1_NGAP_ID_HO_FLAG 143
#define ASN1_NGAP_ID_SECONDARY_RAT_USAGE_INFO 144
#define ASN1_NGAP_ID_PDU_SESSION_RES_RELEASE_RESP_TRANSFER 145
#define ASN1_NGAP_ID_REDIRECTION_VOICE_FALLBACK 146
#define ASN1_NGAP_ID_UE_RETENTION_INFO 147
#define ASN1_NGAP_ID_S_NSSAI 148
#define ASN1_NGAP_ID_PSCELL_INFO 149
#define ASN1_NGAP_ID_LAST_EUTRAN_PLMN_ID 150
#define ASN1_NGAP_ID_MAX_INTEGRITY_PROTECTED_DATA_RATE_DL 151
#define ASN1_NGAP_ID_ADD_DL_FORWARDING_UP_TNL_INFO 152
#define ASN1_NGAP_ID_ADD_DL_UP_TNL_INFO_FOR_HO_LIST 153
#define ASN1_NGAP_ID_ADD_NGU_UP_TNL_INFO 154
#define ASN1_NGAP_ID_ADD_DL_QOS_FLOW_PER_TNL_INFO 155
#define ASN1_NGAP_ID_SECURITY_RESULT 156
#define ASN1_NGAP_ID_ENDC_SON_CFG_TRANSFER_DL 157
#define ASN1_NGAP_ID_ENDC_SON_CFG_TRANSFER_UL 158
#define ASN1_NGAP_ID_OLD_ASSOCIATED_QOS_FLOW_LIST_UL_ENDMARKEREXPECTED 159
#define ASN1_NGAP_ID_CN_TYPE_RESTRICTS_FOR_EQUIVALENT 160
#define ASN1_NGAP_ID_CN_TYPE_RESTRICTS_FOR_SERVING 161
#define ASN1_NGAP_ID_NEW_GUAMI 162
#define ASN1_NGAP_ID_UL_FORWARDING 163
#define ASN1_NGAP_ID_UL_FORWARDING_UP_TNL_INFO 164
#define ASN1_NGAP_ID_CN_ASSISTED_RAN_TUNING 165
#define ASN1_NGAP_ID_COMMON_NETWORK_INSTANCE 166
#define ASN1_NGAP_ID_NGRAN_TNL_ASSOC_TO_REM_LIST 167
#define ASN1_NGAP_ID_TNL_ASSOC_TRANSPORT_LAYER_ADDRESS_NGRAN 168
#define ASN1_NGAP_ID_ENDPOINT_IP_ADDRESS_AND_PORT 169
#define ASN1_NGAP_ID_LOCATION_REPORT_ADD_INFO 170
#define ASN1_NGAP_ID_SOURCE_TO_TARGET_AMF_INFO_REROUTE 171
#define ASN1_NGAP_ID_ADD_UL_FORWARDING_UP_TNL_INFO 172
#define ASN1_NGAP_ID_SCTP_TLAS 173
#define ASN1_NGAP_ID_SEL_PLMN_ID 174
#define ASN1_NGAP_ID_RIM_INFO_TRANSFER 175
#define ASN1_NGAP_ID_GUAMI_TYPE 176
#define ASN1_NGAP_ID_SRVCC_OPERATION_POSSIBLE 177
#define ASN1_NGAP_ID_TARGET_RNC_ID 178
#define ASN1_NGAP_ID_RAT_INFO 179
#define ASN1_NGAP_ID_EXTENDED_RAT_RESTRICT_INFO 180
#define ASN1_NGAP_ID_QOS_MONITORING_REQUEST 181
#define ASN1_NGAP_ID_S_GNB_UE_X2AP_ID 182
#define ASN1_NGAP_ID_ADD_REDUNDANT_DL_NGU_UP_TNL_INFO 183
#define ASN1_NGAP_ID_ADD_REDUNDANT_DL_QOS_FLOW_PER_TNL_INFO 184
#define ASN1_NGAP_ID_ADD_REDUNDANT_NGU_UP_TNL_INFO 185
#define ASN1_NGAP_ID_ADD_REDUNDANT_UL_NGU_UP_TNL_INFO 186
#define ASN1_NGAP_ID_CN_PACKET_DELAY_BUDGET_DL 187
#define ASN1_NGAP_ID_CN_PACKET_DELAY_BUDGET_UL 188
#define ASN1_NGAP_ID_EXTENDED_PACKET_DELAY_BUDGET 189
#define ASN1_NGAP_ID_REDUNDANT_COMMON_NETWORK_INSTANCE 190
#define ASN1_NGAP_ID_REDUNDANT_DL_NGU_TNL_INFO_REUSED 191
#define ASN1_NGAP_ID_REDUNDANT_DL_NGU_UP_TNL_INFO 192
#define ASN1_NGAP_ID_REDUNDANT_DL_QOS_FLOW_PER_TNL_INFO 193
#define ASN1_NGAP_ID_REDUNDANT_QOS_FLOW_IND 194
#define ASN1_NGAP_ID_REDUNDANT_UL_NGU_UP_TNL_INFO 195
#define ASN1_NGAP_ID_TSC_TRAFFIC_CHARACTERISTICS 196
#define ASN1_NGAP_ID_REDUNDANT_PDU_SESSION_INFO 197
#define ASN1_NGAP_ID_USED_R_SN_INFO 198
#define ASN1_NGAP_ID_IAB_AUTHORIZED 199
#define ASN1_NGAP_ID_IAB_SUPPORTED 200
#define ASN1_NGAP_ID_IAB_NODE_IND 201
#define ASN1_NGAP_ID_NB_IOT_PAGING_DRX 202
#define ASN1_NGAP_ID_NB_IOT_PAGING_E_DRX_INFO 203
#define ASN1_NGAP_ID_NB_IOT_DEFAULT_PAGING_DRX 204
#define ASN1_NGAP_ID_ENHANCED_COVERAGE_RESTRICT 205
#define ASN1_NGAP_ID_EXTENDED_CONNECTED_TIME 206
#define ASN1_NGAP_ID_PAGING_ASSIS_DATAFOR_C_ECAPAB_UE 207
#define ASN1_NGAP_ID_WUS_ASSIST_INFO 208
#define ASN1_NGAP_ID_UE_DIFF_INFO 209
#define ASN1_NGAP_ID_NB_IOT_UE_PRIO 210
#define ASN1_NGAP_ID_UL_CP_SECURITY_INFO 211
#define ASN1_NGAP_ID_DL_CP_SECURITY_INFO 212
#define ASN1_NGAP_ID_TAI 213
#define ASN1_NGAP_ID_UE_RADIO_CAP_FOR_PAGING_OF_NB_IOT 214
#define ASN1_NGAP_ID_LTEV2X_SERVICES_AUTHORIZED 215
#define ASN1_NGAP_ID_NR_V2X_SERVICES_AUTHORIZED 216
#define ASN1_NGAP_ID_LTE_UE_SIDELINK_AGGR_MAX_BITRATE 217
#define ASN1_NGAP_ID_NR_UE_SIDELINK_AGGR_MAX_BITRATE 218
#define ASN1_NGAP_ID_PC5_QOS_PARAMS 219
#define ASN1_NGAP_ID_ALT_QOS_PARA_SET_LIST 220
#define ASN1_NGAP_ID_CURRENT_QOS_PARA_SET_IDX 221
#define ASN1_NGAP_ID_CE_MODE_BRESTRICTED 222
#define ASN1_NGAP_ID_EUTRA_PAGINGE_DRX_INFO 223
#define ASN1_NGAP_ID_CE_MODE_B_SUPPORT_IND 224
#define ASN1_NGAP_ID_LTEM_IND 225
#define ASN1_NGAP_ID_END_IND 226
#define ASN1_NGAP_ID_EDT_SESSION 227
#define ASN1_NGAP_ID_UE_CAP_INFO_REQUEST 228
#define ASN1_NGAP_ID_PDU_SESSION_RES_FAILED_TO_RESUME_LIST_RES_REQ 229
#define ASN1_NGAP_ID_PDU_SESSION_RES_FAILED_TO_RESUME_LIST_RES_RES 230
#define ASN1_NGAP_ID_PDU_SESSION_RES_SUSPEND_LIST_SUS_REQ 231
#define ASN1_NGAP_ID_PDU_SESSION_RES_RESUME_LIST_RES_REQ 232
#define ASN1_NGAP_ID_PDU_SESSION_RES_RESUME_LIST_RES_RES 233
#define ASN1_NGAP_ID_UE_UP_C_IOT_SUPPORT 234
#define ASN1_NGAP_ID_SUSPEND_REQUEST_IND 235
#define ASN1_NGAP_ID_SUSPEND_RESP_IND 236
#define ASN1_NGAP_ID_RRC_RESUME_CAUSE 237
#define ASN1_NGAP_ID_RG_LEVEL_WIRELINE_ACCESS_CHARACTERISTICS 238
#define ASN1_NGAP_ID_W_AGF_ID_INFO 239
#define ASN1_NGAP_ID_GLOBAL_TNGF_ID 240
#define ASN1_NGAP_ID_GLOBAL_TWIF_ID 241
#define ASN1_NGAP_ID_GLOBAL_W_AGF_ID 242
#define ASN1_NGAP_ID_USER_LOCATION_INFO_W_AGF 243
#define ASN1_NGAP_ID_USER_LOCATION_INFO_TNGF 244
#define ASN1_NGAP_ID_AUTHENTICATED_IND 245
#define ASN1_NGAP_ID_TNGF_ID_INFO 246
#define ASN1_NGAP_ID_TWIF_ID_INFO 247
#define ASN1_NGAP_ID_USER_LOCATION_INFO_TWIF 248
#define ASN1_NGAP_ID_DATA_FORWARDING_RESP_ERAB_LIST 249
#define ASN1_NGAP_ID_INTERSYS_SON_CFG_TRANSFER_DL 250
#define ASN1_NGAP_ID_INTERSYS_SON_CFG_TRANSFER_UL 251
#define ASN1_NGAP_ID_SON_INFO_REPORT 252
#define ASN1_NGAP_ID_UE_HISTORY_INFO_FROM_THE_UE 253
#define ASN1_NGAP_ID_MANAGEMENT_BASED_MDT_PLMN_LIST 254
#define ASN1_NGAP_ID_MDT_CFG 255
#define ASN1_NGAP_ID_PRIVACY_IND 256
#define ASN1_NGAP_ID_TRACE_COLLECTION_ENTITY_URI 257
#define ASN1_NGAP_ID_NPN_SUPPORT 258
#define ASN1_NGAP_ID_NPN_ACCESS_INFO 259
#define ASN1_NGAP_ID_NPN_PAGING_ASSIST_INFO 260
#define ASN1_NGAP_ID_NPN_MOB_INFO 261
#define ASN1_NGAP_ID_TARGETTO_SOURCE_FAIL_TRANSPARENT_CONTAINER 262
#define ASN1_NGAP_ID_N_ID 263
#define ASN1_NGAP_ID_UE_RADIO_CAP_ID 264
#define ASN1_NGAP_ID_UE_RADIO_CAP_EUTRA_FORMAT 265
#define ASN1_NGAP_ID_DAPS_REQUEST_INFO 266
#define ASN1_NGAP_ID_DAPS_RESP_INFO_LIST 267
#define ASN1_NGAP_ID_EARLY_STATUS_TRANSFER_TRANSPARENT_CONTAINER 268
#define ASN1_NGAP_ID_NOTIFY_SOURCE_NGRAN_NODE 269
#define ASN1_NGAP_ID_EXTENDED_SLICE_SUPPORT_LIST 270
#define ASN1_NGAP_ID_EXTENDED_TAI_SLICE_SUPPORT_LIST 271
#define ASN1_NGAP_ID_CFG_TAC_IND 272
#define ASN1_NGAP_ID_EXTENDED_RAN_NODE_NAME 273
#define ASN1_NGAP_ID_EXTENDED_AMF_NAME 274
#define ASN1_NGAP_ID_GLOBAL_CABLE_ID 275
#define ASN1_NGAP_ID_QOS_MONITORING_REPORT_FREQ 276
#define ASN1_NGAP_ID_QOS_FLOW_PARAMS_LIST 277
#define ASN1_NGAP_ID_QOS_FLOW_FEEDBACK_LIST 278
#define ASN1_NGAP_ID_BURST_ARRIVAL_TIME_DL 279
#define ASN1_NGAP_ID_EXTENDED_UE_ID_IDX_VALUE 280
#define ASN1_NGAP_ID_PDU_SESSION_EXPECTED_UE_ACTIVITY_BEHAVIOUR 281
#define ASN1_NGAP_ID_MICO_ALL_PLMN 282
#define ASN1_NGAP_ID_QOS_FLOW_FAILED_TO_SETUP_LIST 283
#define ASN1_NGAP_ID_SOURCE_TNLA_DDR_INFO 284
#define ASN1_NGAP_ID_EXTENDED_REPORT_INTERV_MDT 285
#define ASN1_NGAP_ID_SOURCE_NODE_ID 286
#define ASN1_NGAP_ID_NR_NTN_TAI_INFO 287
#define ASN1_NGAP_ID_UE_CONTEXT_REF_AT_SOURCE 288
#define ASN1_NGAP_ID_LAST_VISITED_PSCELL_LIST 289
#define ASN1_NGAP_ID_INTERSYS_SON_INFO_REQUEST 290
#define ASN1_NGAP_ID_INTERSYS_SON_INFO_REPLY 291
#define ASN1_NGAP_ID_ENERGY_SAVING_IND 292
#define ASN1_NGAP_ID_INTERSYS_RES_STATUS_UPD 293
#define ASN1_NGAP_ID_SUCCESSFUL_HO_REPORT_LIST 294
#define ASN1_NGAP_ID_MBS_AREA_SESSION_ID 295
#define ASN1_NGAP_ID_MBS_QOS_FLOWS_TO_BE_SETUP_LIST 296
#define ASN1_NGAP_ID_MBS_QOS_FLOWS_TO_BE_SETUP_MOD_LIST 297
#define ASN1_NGAP_ID_MBS_SERVICE_AREA 298
#define ASN1_NGAP_ID_MBS_SESSION_ID 299
#define ASN1_NGAP_ID_MBS_DISTRIBUTION_RELEASE_REQUEST_TRANSFER 300
#define ASN1_NGAP_ID_MBS_DISTRIBUTION_SETUP_REQUEST_TRANSFER 301
#define ASN1_NGAP_ID_MBS_DISTRIBUTION_SETUP_RESP_TRANSFER 302
#define ASN1_NGAP_ID_MBS_DISTRIBUTION_SETUP_UNSUCCESSFUL_TRANSFER 303
#define ASN1_NGAP_ID_MULTICAST_SESSION_ACTIVATION_REQUEST_TRANSFER 304
#define ASN1_NGAP_ID_MULTICAST_SESSION_DEACTIVATION_REQUEST_TRANSFER 305
#define ASN1_NGAP_ID_MULTICAST_SESSION_UPD_REQUEST_TRANSFER 306
#define ASN1_NGAP_ID_MULTICAST_GROUP_PAGING_AREA_LIST 307
#define ASN1_NGAP_ID_MBS_SUPPORT_IND 309
#define ASN1_NGAP_ID_MBS_SESSION_FAILEDTO_SETUP_LIST 310
#define ASN1_NGAP_ID_MBS_SESSION_FAILEDTO_SETUPOR_MODIFY_LIST 311
#define ASN1_NGAP_ID_MBS_SESSION_SETUP_RESP_LIST 312
#define ASN1_NGAP_ID_MBS_SESSION_SETUPOR_MODIFY_RESP_LIST 313
#define ASN1_NGAP_ID_MBS_SESSION_SETUP_FAIL_TRANSFER 314
#define ASN1_NGAP_ID_MBS_SESSION_SETUP_REQUEST_TRANSFER 315
#define ASN1_NGAP_ID_MBS_SESSION_SETUP_RESP_TRANSFER 316
#define ASN1_NGAP_ID_MBS_SESSION_TO_RELEASE_LIST 317
#define ASN1_NGAP_ID_MBS_SESSION_SETUP_REQUEST_LIST 318
#define ASN1_NGAP_ID_MBS_SESSION_SETUPOR_MODIFY_REQUEST_LIST 319
#define ASN1_NGAP_ID_MBS_ACTIVE_SESSION_INFO_SOURCETO_TARGET_LIST 323
#define ASN1_NGAP_ID_MBS_ACTIVE_SESSION_INFO_TARGETTO_SOURCE_LIST 324
#define ASN1_NGAP_ID_ONBOARDING_SUPPORT 325
#define ASN1_NGAP_ID_TIME_SYNC_ASSIST_INFO 326
#define ASN1_NGAP_ID_SURVIVAL_TIME 327
#define ASN1_NGAP_ID_Q_MCC_ONFIG_INFO 328
#define ASN1_NGAP_ID_QMC_DEACTIVATION 329
#define ASN1_NGAP_ID_PDU_SESSION_PAIR_ID 331
#define ASN1_NGAP_ID_NR_PAGINGE_DRX_INFO 332
#define ASN1_NGAP_ID_RED_CAP_IND 333
#define ASN1_NGAP_ID_TARGET_NSSAI_INFO 334
#define ASN1_NGAP_ID_UE_SLICE_MAX_BIT_RATE_LIST 335
#define ASN1_NGAP_ID_M4_REPORT_AMOUNT 336
#define ASN1_NGAP_ID_M5_REPORT_AMOUNT 337
#define ASN1_NGAP_ID_M6_REPORT_AMOUNT 338
#define ASN1_NGAP_ID_M7_REPORT_AMOUNT 339
#define ASN1_NGAP_ID_INCLUDE_BEAM_MEASS_IND 340
#define ASN1_NGAP_ID_EXCESS_PACKET_DELAY_THRES_CFG 341
#define ASN1_NGAP_ID_PAGING_CAUSE 342
#define ASN1_NGAP_ID_PAGING_CAUSE_IND_FOR_VOICE_SERVICE 343
#define ASN1_NGAP_ID_PE_IP_SASSIST_INFO 344
#define ASN1_NGAP_ID_FIVE_G_PRO_SE_AUTHORIZED 345
#define ASN1_NGAP_ID_FIVE_G_PRO_SE_UE_PC5_AGGR_MAX_BIT_RATE 346
#define ASN1_NGAP_ID_FIVE_G_PRO_SE_PC5_QOS_PARAMS 347
#define ASN1_NGAP_ID_MBS_SESSION_MOD_FAIL_TRANSFER 348
#define ASN1_NGAP_ID_MBS_SESSION_MOD_REQUEST_TRANSFER 349
#define ASN1_NGAP_ID_MBS_SESSION_MOD_RESP_TRANSFER 350
#define ASN1_NGAP_ID_MBS_QOS_FLOW_TO_RELEASE_LIST 351
#define ASN1_NGAP_ID_MBS_SESSION_TNL_INFO5_GC 352
#define ASN1_NGAP_ID_TAI_NSAG_SUPPORT_LIST 353
#define ASN1_NGAP_ID_SOURCE_NODE_TNLA_DDR_INFO 354
#define ASN1_NGAP_ID_NGAP_IE_SUPPORT_INFO_REQUEST_LIST 355
#define ASN1_NGAP_ID_NGAP_IE_SUPPORT_INFO_RESP_LIST 356
#define ASN1_NGAP_ID_MBS_SESSION_FSA_ID_LIST 357
#define ASN1_NGAP_ID_MBS_SESSION_RELEASE_RESP_TRANSFER 358
#define ASN1_NGAP_ID_MANAGEMENT_BASED_MDT_PLMN_MOD_LIST 359
#define ASN1_NGAP_ID_EARLY_MEAS 360
#define ASN1_NGAP_ID_BEAM_MEASS_REPORT_CFG 361
#define ASN1_NGAP_ID_HFC_NODE_ID_NEW 362
#define ASN1_NGAP_ID_GLOBAL_CABLE_ID_NEW 363
#define ASN1_NGAP_ID_TARGET_HOME_ENB_ID 364

/*******************************************************************************
 *                              Struct Definitions
 ******************************************************************************/

// PrivateIE-ID ::= CHOICE
struct private_ie_id_c {
  struct types_opts {
    enum options { local, global, nulltype } value;

    const char* to_string() const;
  };
  using types = enumerated<types_opts>;

  // choice methods
  private_ie_id_c() = default;
  void        set(types::options e = types::nulltype);
  types       type() const { return type_; }
  SRSASN_CODE pack(bit_ref& bref) const;
  SRSASN_CODE unpack(cbit_ref& bref);
  void        to_json(json_writer& j) const;
  // getters
  uint32_t& local()
  {
    assert_choice_type(types::local, type_, "PrivateIE-ID");
    return c;
  }
  const uint32_t& local() const
  {
    assert_choice_type(types::local, type_, "PrivateIE-ID");
    return c;
  }
  uint32_t& set_local();
  void      set_global();

private:
  types    type_;
  uint32_t c;
};

// PrivateIE-Field{NGAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE{{NGAP-PRIVATE-IES}}
template <class ies_set_paramT_>
struct private_ie_field_s {
  private_ie_id_c                   id;
  crit_e                            crit;
  typename ies_set_paramT_::value_c value;

  SRSASN_CODE pack(bit_ref& bref) const;
  SRSASN_CODE unpack(cbit_ref& bref);
  void        to_json(json_writer& j) const;
};

// PrivateIE-Container{NGAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE (SIZE (1..65535)) OF PrivateIE-Field
template <class ies_set_paramT_>
using private_ie_container_l = dyn_seq_of<private_ie_field_s<ies_set_paramT_>, 1, 65535, true>;

template <class valueT_>
struct private_ie_container_item_s {
  private_ie_id_c id;
  crit_e          crit;
  valueT_         value;

  // sequence methods
  private_ie_container_item_s(private_ie_id_c id_, crit_e crit_);
  SRSASN_CODE pack(bit_ref& bref) const;
  SRSASN_CODE unpack(cbit_ref& bref);
  void        to_json(json_writer& j) const;
};

} // namespace ngap
} // namespace asn1
